package com.tfjybj.itoo.exam.model;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.persistence.Column;
import java.io.Serializable;

/**
 * PaperRecordModel
 * 答题记录表
 *
 * @author 任晓帅 
 * @version 2.0.0
 * @since 2.0.0 2018-11-15 19:40:28
 */
@ApiModel(value = "PaperRecordModel:答题记录表")
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
public class PaperRecordModel implements Serializable {

    //region 模板逆向生产来自PaperRecordEntity的属性
	/**
	 * id
	 */
	@ApiModelProperty(value = "paperRecord主键")
	@Column(name = "id")
	private String id;
   	/**
	 * 考生_id
	 */
	@ApiModelProperty(value = "考生_id",required = true)
	private String examineeId;

	/**
	 * 考生_姓名
	 */
	@ApiModelProperty(value = "考生_姓名")
	private String examineeName;

	/**
	 * 课程_id
	 */
	@ApiModelProperty(value = "课程_id",required = true)
	private String courseId;

	/**
	 * 考试_id
	 */
	@ApiModelProperty(value = "考试_id",required = true)
	private String examinationId;

	/**
	 * 模板_id
	 */
	@ApiModelProperty(value = "模板_id",required = true)
	private String templateId;

	/**
	 * 父题目id
	 */
    @ApiModelProperty(value = "父题目id")
	private String parentId;

	/**
	 * 题型_id
	 */
	@ApiModelProperty(value = "题型_id",required = true)
	private String questionTypeId;

	/**
	 * 题型_id
	 */
	@ApiModelProperty(value = "题型名字",required = true)
	private String questionTypeName;

	/**
	 * 题干_id
	 */
	@ApiModelProperty(value = "题干_id",required = true)
	private String questionId;

	/**
	 * 题干_name
	 */
	@ApiModelProperty(value = "题干_name")
	private String questionName;

	/**
	 * 题干内容
	 */
	@ApiModelProperty(value = "题干内容")
	private String questionContent;

	/**
	 * 正确率
	 */
	@ApiModelProperty(value = "正确率")
	private String correctRate;

	/**
	 * 考试分类id
	 */
	@ApiModelProperty(value = "考试分类id",required = true)
	private String examClassifyId;

	/**
	 * 标准分数
	 */
	@ApiModelProperty(value = "标准分数",required = true)
	private Double standardScore;

	/**
	 * 判分状态(0未判 ，1 已判 ，2 已汇总)
	 */
	@ApiModelProperty(value = "判分状态(0未判 ，1 已判 ，2 已汇总)",required = true, example = "0")
	private Integer markStatus;

	/**
	 * 正确答案
	 */
    @ApiModelProperty(value = "正确答案")
	private String correctAnswer;

	/**
	 * 正确答案HTML格式
	 */
    @ApiModelProperty(value = "正确答案HTML格式")
	private String correctAnswerHtml;

	/**
	 * 学生答案
	 */
    @ApiModelProperty(value = "学生答案")
	private String studentAnswer;

	/**
	 * 学生答案HTML格式
	 */
    @ApiModelProperty(value = "学生答案HTML格式")
	private String studentAnswerHtml;


    /**
	 * 学生答案原格式
	 */
    @ApiModelProperty(value = "学生答案原格式")
	private String[] studentAnswerArrayStr;

	/**
	 * 学生答案原格式
	 */
	@ApiModelProperty(value = "学生答案原格式html")
	private String studentAnswerArrayhtml;


	/**
	 * 学生得分
	 */
    @ApiModelProperty(value = "学生得分")
	private Double score;

	/**
	 * 判分老师
	 */
    @ApiModelProperty(value = "判分老师")
	private String markUser;

	/**
	 * 试题顺序
	 */
    @ApiModelProperty(value = "试题顺序", example = "0")
	private Integer questionOrder;

	/**
	 * 是否乱序（0 否，1 是）
	 */
    @ApiModelProperty(value = "是否乱序（0 否，1 是）", example = "0")
	private Integer isOutOfOrder;

	/**
	 * 是否别名（0 否，1 是）
	 */
    @ApiModelProperty(value = "是否别名（0 否，1 是）", example = "0")
	private Integer isAlias;

	/**
	 * 更新答题记录的来源（0默认值，1从在线考试跟新，2来自json导入）
	 */
    @ApiModelProperty(value = "更新答题记录的来源（0默认值，1从在线考试跟新，2来自json导入）", example = "0")
	private Integer origin;

	/**
	 * 历史分id
	 */
    @ApiModelProperty(value = "历史分id")
	private String historyId;

	/**
	 * 版本（默认为1，以后是2，3，4....）
	 */
	@ApiModelProperty(value = "版本（默认为1，以后是2，3，4....）",required = true, example = "0")
	private Integer version;

    //endregion

     /* *****************************以下是非模板生成的内容************************************ */

	public PaperRecordModel(String id, String examineeId, String examineeName, String courseId, String examinationId, String templateId, String parentId, String questionTypeId, String questionId, String questionName, String examClassifyId, Double standardScore, Integer markStatus, String correctAnswer, String correctAnswerHtml, String studentAnswer, String studentAnswerHtml, String[] studentAnswerArrayStr, Double score, String markUser, Integer questionOrder, Integer isOutOfOrder, Integer isAlias, Integer origin, String historyId, Integer version) {
		this.id = id;
		this.examineeId = examineeId;
		this.examineeName = examineeName;
		this.courseId = courseId;
		this.examinationId = examinationId;
		this.templateId = templateId;
		this.parentId = parentId;
		this.questionTypeId = questionTypeId;
		this.questionId = questionId;
		this.questionName = questionName;
		this.examClassifyId = examClassifyId;
		this.standardScore = standardScore;
		this.markStatus = markStatus;
		this.correctAnswer = correctAnswer;
		this.correctAnswerHtml = correctAnswerHtml;
		this.studentAnswer = studentAnswer;
		this.studentAnswerHtml = studentAnswerHtml;
		this.studentAnswerArrayStr = studentAnswerArrayStr;
		this.score = score;
		this.markUser = markUser;
		this.questionOrder = questionOrder;
		this.isOutOfOrder = isOutOfOrder;
		this.isAlias = isAlias;
		this.origin = origin;
		this.historyId = historyId;
		this.version = version;
	}

	/**
	 * 汇总每个学生总成绩
	 */
	@ApiModelProperty(value = "汇总每个学生总成绩")
	private String totalScore;

	/**
	 * 学生学号
	 */
	@ApiModelProperty(value = "学生学号")
	private String studentCode;
}
